Skip to content

系统分析作业3

简答题

简述瀑布模型、增量模型、螺旋模型(含原型方法),并分析优缺点

从项目特点、风险特征、人力资源利用角度思考

瀑布模型

f35a48ef50a3e6ffbd1c23ec5a96426e

优点
  1. 定义了软件开发基本流程与活动,提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导。
  2. 有利于对于大型软件开发的管理,更好分配人力资源
  3. 当前一阶段完成后,您只需要去关注后续阶段。
  4. 为项目提供了按阶段划分的检查点。
缺点
  1. 各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量,浪费了一定程度的人力资源。
  2. 由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发风险,风险控制能力差。
  3. 对于用户需求的改变不能做到较好的适应,风险控制能力差。
增量模型

zeng

优点
  1. 将待开发的软件系统模块化,可以分批次地提交软件产品,使用户可以及时了解软件项目的进展。这是上面的瀑布模型所无法做到的。
  2. 通过以组件为单位进行开发可以有效降低了软件开发的风险。一个开发周期内的错误不会影响到整个软件系统,风险控制能力较强。
  3. 开发顺序灵活。开发人员可以对组件的实现顺序进行优先级排序,先完成需求稳定的核心组件。当组件的优先级发生变化时,还能及时地对实现顺序进行调整,风险控制能力较强。
缺点
  1. 该模型的基础是待开发的软件系统可以被模块化,如果待开发的软件系统很难被模块化,将不利于我们使用增量模型进行开发。
  2. 对于项目管理人员把握全局的水平提出了一定的要求。
螺旋模型

luoxuan

优点
  1. 增加了设计上的灵活性, 我们可以在项目的各个阶段进行变更。
  2. 通过以小的分段来构建大型系统,使成本计算变得简单容易。
  3. 从图上可以看到,客户始终参与每个阶段的开发,从而保证了项目不偏离正确方向以及项目的可控性。
缺点
  1. 管理不得当的话,过多的迭代次数会增加开发成本,延迟提交时间,进而可能出现软件开发完毕后,和当前的技术水平有了较大的差距,无法满足当前用户需求的情况。
  2. 风险分析需要额外的人才资源和成本,而且在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失;

简述统一过程三大特点,与面向对象的方法有什么关系?

三大特点分别为:

  • 用户为中心

    用例分析作为一项软件技术,远远比功能分解复杂。大部分需求人员不具备编写用例的能力,用户多数看不懂用例。因此,在交互过程中,传统以功能列表描述为主的《需求规格说明书》应用更加广泛。

  • 架构为重心

    对于业务逻辑非常复杂的系统,打造一个强健的架构是必须的。但对于一些业务逻辑相对简单,而用户交互逻辑复杂的系统,过于强调架构似乎没有必要。例如,对于一个有着很多模块的网站,各个模块相对独立,访问各自的表,维护一套用例图、类图、时序图就成为累赘。

  • 风险驱动

    UP的另一个驱动就是风险,因为如果你不主动预测和防范风险,风险就会主动攻击你。UP需要对软件开发中的风险进行分析、预测并关注软件的构造。

统一过程就是是一个面向对象的软件开发技术,给出了有关软件开发过程组织及实施的指导。

简述统一过程四个阶段的划分准则是什么?每个阶段关键的里程碑是什么?

划分准则

统一过程按照其工作和迭代在时间上被分为四个顺序的阶段。

每个阶段关键的里程碑
  • 初始阶段: 生命周期目标里程碑,主要目的就是建立目的的范围和版本,确定项目目标的可行性和稳定性,提交结果包括需求和用例
  • 细化阶段: 生命周期结构里程碑,该阶段的目的就是对问题域进行分析,建立系统需求和架构,确定实现的可行性和稳定性,提交结果包括系统架构、问题领域、修改后的需求及项目开发计划等相关文档
  • 构建阶段: 初始功能里程碑,该阶段增量式开发可以交付给用户的软件产品
  • 交付阶段: 产品发布里程碑,目的就是将软件产品交付给用户

软件企业为什么能按固定节奏生产、固定周期发布软件产品?它给企业项目管理带来哪些好处?

原因

因为软件企业采用了统一过程的开发,而统一过程作为一个迭代增量的过程,它有初始阶段、细化阶段、构建阶段、交付阶段四个阶段,并且他包含了每个阶段结束时都需要进行相应的目标评估,来判断是否能够进入下一个阶段。明确了不同阶段迭代的里程碑与目标,支持 CI/CD 的版本交付,为固定项目周期提供了可能。在此基础之上,软件公司可以利用软件产品范围的弹性,合理规划范围(20%业务决定80%满意度),使得软件生产能够按固定节奏运行,固定迭代周期、固定开发周期、固定升级周期。

好处
  1. 方便了需求的不断更改
  2. 提高了软件团队的生产能力,以及软件生产效率
  3. 建立了非常明确的过程结构,而且每个阶段都有明确的里程碑和判定标准,确保了软件的质量
  4. 稳定的固定的开发节奏有利于项目的及时交付,降低了延期的风险,保证项目的顺利完成,并通过稳定的开发吸引更多用户